草庐IT

c++ - Qt Release build 给出 MSVC++ Runtime Library Error

全部标签

c++ - std::is_constructible 没有给出正确的结果

这个问题在这里已经有了答案:Whydoesis_constructibleclaimsomethingisconstructiblewhenitisn't?(2个答案)关闭6年前。源自thisCodeReview主题:#include#include#include#include#includetemplateclassaggregate_wrapper:publicT{private:usingbase=T;public:usingaggregate_type=T;templateaggregate_wrapper(Ts&&...xs):base{std::forward(xs).

c++ - MSVC : bug? 上的模板参数推导失败

以下代码无法在VC++8.0编译器上编译并出现错误(我还没有在最新的visualstudio编译器上尝试过。)errorC2440:'return':cannotconvertfrom'constchar*'to'constchar(&)[6]'templateinlineTconst&compare(Tconst&a,Tconst&b){returna在函数模板中,字符串似乎是constchar(&)[6].据我所知,当应用运算符,数组应衰减为指针。那么,这个错误可能是因为可能的错误吗? 最佳答案 这肯定是Microsoft编译器

c++ - 英特尔编译器生成的代码比 MSVC 慢 68%(提供了完整示例)

我让C++代码处理来自一个1800元素数组的三个连续值。ICC14.0编译的代码比MSVC生成的代码慢大约68%(1600对2700个CPU周期)。我不明白为什么。有人可以帮忙吗?即使我设置了Intel编译器-O3开关,它也不会改变时间。CPU是IvyBridge。#includeintmain(){intdata[1200];//Dummy-populatedatafor(inty=0;y 最佳答案 ICC在这里很糟糕,因为它正在计算每个data[n]访问alamovedi,dwordptr[rsp+rax*4+44h]的地址。.

c++ - 初始化 SDL_Mixer 给出错误 "No available audio device"

我正在开发一个使用SDL/SDL_Mixer播放wav文件的C++应用程序。我一直在Mac上开发应用程序,没有太大问题。但是,我确实需要这个应用程序在Linux上运行,所以我将VirtualBox安装在装有Ubuntu12.04LTS的Windows7机器上。编译工作正常,直到我真正尝试初始化系统。然后,SDL_Mixer给出错误“没有可用的音频设备。”这是抛出错误的代码:usingnamespacestd;voidsimple_sound_init(){if(SDL_Init(SDL_INIT_AUDIO)==-1){fprintf(stderr,"initSDLerror:%s\n

c++ - 附加调试器时 unique_ptr dtor 调用速度慢得离谱 (msvc)

structtest_struct{test_struct(){}~test_struct(){}};#include#include#includeintmain(){printf("ctorbegin\n");{std::vector>test_vec;constintcount=100000;for(autoi=0;i我正在使用VS2010,发现了一些荒谬的性能问题。上面的代码在调试和发布版本(ctrl+f5)中都运行良好,但是当附加调试器(f5)时,dtor调用unique_ptr类的速度慢得无法忍受。结果机器代码是相当优化的,所以我不认为这是编译器问题而不是调试器问题,但我不

c++ - 为什么 == 运算符重载枚举在 MSVC 中不明确

除了MSVC,以下代码在我检查过的所有编译器(clang、mingw、g++)上都能正常编译。enumclassFoo{BAR};booloperator==(Fooa,Foob){return(int)a&(int)b;}intmain(intargc,char*argv[]){Foo::BAR==Foo::BAR;return0;}MSVC失败并出现以下错误:>main.cpp(10):errorC2593:'operator=='isambiguous>main.cpp(3):note:couldbe'booloperator==(Foo,Foo)'>main.cpp(10):n

c++ - 当重载具有多重继承的函数时,GCC 说调用它是不明确的,但 Clang 和 MSVC 没有

我正在使用这个变体库:https://github.com/cbeck88/strict-variant.它提供了一个类似于std::variant和boost::variant的类。鉴于此struct:structS{explicitS(double){}};我想这样做:strict_variant::variantv=2.0;这适用于Clang5.0.1和MSVC19.12.25831.00,但无法使用GCC7.2.1进行编译。我查看了库的代码并将问题简化为:#includestructS{constexprS(){}constexprexplicitS(double){}};te

c++ - msvc/permissive- std::string 重载运算符 '=' 不明确

它用/permissive编译,但用/permissive-编译失败。什么不符合要求以及如何解决?为什么在(2)中没问题,但在(4)(3)中失败了?如果我删除operatorlong也可以。如何在不更改调用站点(3,4)的情况下修复它?#includestructmy{std::stringmyVal;my(std::stringval):myVal(val){}operatorstd::string(){returnmyVal;};operatorlong(){returnstd::stol(myVal);};};intmain(){structMyStruct{longn=my("

c++ - qmake:处理 gcc 和 msvc 的选项

我想制作一个可以同时使用msvc和gcc的项目文件。例如,要优化速度,您可以执行cl/O2和g++-O3。但我不知道如何告诉项目文件来产生差异。我想要这样的东西:msvc:QMAKE_CXXFLAGS_RELEASE+=/O2/openmp/arch:AVXelse:QMAKE_CXXFLAGS_RELEASE+=-O3-march=native-fopenmp-D_GLIBCXX_PARALLEL可悲的是,这不起作用。其他方法是更改​​mkspecs并将新的与我的应用程序捆绑在一起,但它不是很便携。谢谢! 最佳答案 Jean,准确

c++ - chrono steady_clock 没有给出正确的结果?

我的应用服务器代码中有一行代码使用steady_clock获取时间戳值,如下所示:uint64_tnow=duration_cast(steady_clock::now().time_since_epoch()).count();现在我们有两个运行Ubuntu12(gcc4.6.3编译器)的系统machineA和运行Ubuntu14(gcc4.8.2编译器)的machineB。现在我们在另一个Ubuntu12VM(具有4.7.3编译器)上使用make编译我们的应用程序服务器代码,然后将生成的tar文件复制到machineA并启动我们的应用服务器。启动后,上面这行代码在machineA中